package cn.snmp.mutual.org.opennms.protocols.snmp.asn1;

import java.math.*;

public interface AsnEncoder
{
    int buildLength(final byte[] p0, final int p1, final int p2) throws AsnEncodingException;
    
    Object[] parseLength(final byte[] p0, final int p1) throws AsnDecodingException;
    
    int buildHeader(final byte[] p0, final int p1, final byte p2, final int p3) throws AsnEncodingException;
    
    Object[] parseHeader(final byte[] p0, final int p1) throws AsnDecodingException;
    
    int buildInteger32(final byte[] p0, final int p1, final byte p2, final int p3) throws AsnEncodingException;
    
    Object[] parseInteger32(final byte[] p0, final int p1) throws AsnDecodingException;
    
    int buildUInteger32(final byte[] p0, final int p1, final byte p2, final long p3) throws AsnEncodingException;
    
    Object[] parseUInteger32(final byte[] p0, final int p1) throws AsnDecodingException;
    
    int buildUInteger64(final byte[] p0, final int p1, final byte p2, final BigInteger p3) throws AsnEncodingException;
    
    Object[] parseUInteger64(final byte[] p0, final int p1) throws AsnDecodingException;
    
    int buildNull(final byte[] p0, final int p1, final byte p2) throws AsnEncodingException;
    
    Object[] parseNull(final byte[] p0, final int p1) throws AsnDecodingException;
    
    int buildString(final byte[] p0, final int p1, final byte p2, final byte[] p3) throws AsnEncodingException;
    
    Object[] parseString(final byte[] p0, final int p1) throws AsnDecodingException;
    
    int buildObjectId(final byte[] p0, final int p1, final byte p2, final int[] p3) throws AsnEncodingException;
    
    Object[] parseObjectId(final byte[] p0, final int p1) throws AsnDecodingException;
}
